///
/// 抽象机制与继承
void main() {
  // Person p = Person("",18);
}
// 定义父类
abstract class Person{
  String name;
  int age;

  Person(this.name, this.age);

  Person.second(this.name, this.age);

  void show() {
    print('$name $age');
  }

  //抽象方法定义规则，要求子类必须继承
  void marry();
}

// 子类继承，必须实现抽象方法
class Boy extends Person{

  late double height;

  // Boy(String name, int age,double height):super(name,age){
  //   this.height=height;
  // }
  Boy(String name, int age,this.height):super(name,age);

  //方法重写
  @override
  void show(){
    // super.show();
    print('$name $age $height');
  }

  void playBoy(){
    print('男生喜欢打王者荣耀');
  }

  @override
  void marry() {
    print('我是一个男生，要找一个女朋友结婚');
  }

}

/// 接口 = 抽象类
// abstract class Person {
//   void run();
// }
// class Student implements Person {
//   @override
//   void run() {
//     print("run 执行了。。。")
//   }
// }